feat(openfeature): add exposure route fallback - #9740
Conversation
Overall package sizeSelf size: 8.25 MB Dependency sizes| name | version | self size | total size | |------|---------|-----------|------------| | import-in-the-middle | 3.3.3 | 125.43 kB | 445.14 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | dc-polyfill | 0.1.11 | 25.74 kB | 25.74 kB |🤖 This report was automatically generated by heaviest-objects-in-the-universe |
🎉 All green!🧪 All tests passed 🎯 Code Coverage (details) 🔗 Commit SHA: 48a3c78 | Docs | View more details | Give us feedback! |
BenchmarksBenchmark execution time: 2026-08-18 21:57:42 Comparing candidate commit 48a3c78 in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 2285 metrics, 7 unstable metrics.
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #9740 +/- ##
==========================================
+ Coverage 98.17% 98.54% +0.37%
==========================================
Files 981 982 +1
Lines 144762 144966 +204
Branches 12478 12845 +367
==========================================
+ Hits 142118 142860 +742
+ Misses 2644 2106 -538 Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7e1d04db31
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
sameerank
left a comment
There was a problem hiding this comment.
I agree with some of the bot feedback, so please fix before merging
The merge-base changed after approval.
7e1d04d to
793a83f
Compare
793a83f to
77e55eb
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 77e55eb616
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Wire the direct route into strategy selection
Direct-only exposure delivery and fallback after local ECONNREFUSED/403/404/405 do not work for normal clients.
Assertion details
- Input: Enable OpenFeature with a valid API key and site, then either have no supported local EVP route or receive a definitive rejection from the local route.
- Expected:
OpenFeature strategy selection should construct the authenticated direct route, use it when no local route exists, and attach it as the local route's fallback. Tests should exercise this through normal OpenFeature initialization. - Actual:
createDirectEVPRouteis added but never called. Production initialization still only discovers a local route and disables the writer when discovery fails; it never supplies the fallback that the new retry logic requires. Existing fallback tests manually inject this otherwise-unreachable route shape.
Was this helpful? React 👍 or 👎
🤖 Datadog Autotest · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
There was a problem hiding this comment.
The added direct-EVP route factory is never called by OpenFeature initialization, so normal clients neither deliver directly when local discovery fails nor retry definitive local rejections through direct intake.
🤖 Datadog Autotest · Commit 793a83f · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
|
Thanks for the feedback @sameerank . I pushed these changes:
Production route selection is implemented in the stacked PR #9741. It selects EVP v4, EVP v2, or authenticated direct intake through normal OpenFeature initialization. I also verified that one provider evaluation sends exactly one exposure. The 405 fallback sends the same payload once through direct intake, with the API key only on the direct request. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 65047b4ec6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Stacked on #9739.
Motivation
Our business goal is to make OpenFeature client integration simple. Exposure delivery must support local and direct EVP routes.
The exposure writer currently supports one local route. It cannot use direct intake or recover from definitive local rejection.
Changes and Decisions